#ifndef __CPU_WAIT_H
#define __CPU_WAIT_H

//数据类型宏定义
//typedef unsigned char  BOOLEAN;
//typedef unsigned char  INT8U;                    /* Unsigned  8 bit quantity                           */
//typedef signed   char  INT8S;                    /* Signed    8 bit quantity                           */
//typedef unsigned short INT16U;                   /* Unsigned 16 bit quantity                           */
//typedef signed   short INT16S;                   /* Signed   16 bit quantity                           */
//typedef unsigned int   INT32U;                   /* Unsigned 32 bit quantity                           */
//typedef signed   int   INT32S;                   /* Signed   32 bit quantity                           */
//typedef float          FP32;                     /* Single precision floating point                    */
//typedef double         FP64;                     /* Double precision floating point                    */

//typedef unsigned int   OS_STK;                   /* Each stack entry is 32-bit wide                    */
//typedef unsigned int   OS_CPU_SR;                /* Define size of CPU status register (PSR = 32 bits) */


////函数缺失
//void OSCtxSw(void);
//void OSInitHookStart(void);
//void OSInitHookEnd(void);
//void OSIntCtxSw(void);
//void OSStartHighRdy(void);
////void OSTCBInitHook(void);
////void OSTaskCreateHook(void);
//void OSTaskIdleHook(void);
//void OSTaskStatHook(void);
//void OSTimeTickHook(void);
//void OS_CPU_SR_Restore(INT32U);
//INT32U OS_CPU_SR_Save(INT32U);
////void OSTaskDelHook(void);
////void OSTaskReturnHook(void);
////void OSTaskStkInit(void);
//void OSTaskSwHook(void);
//void CortexM_Save(void);

//MSP
//#ifdef   OS_CPU_GLOBALS
//#define  OS_CPU_EXT
//#else
//#define  OS_CPU_EXT  extern
//#endif

//#ifndef  OS_CPU_EXCEPT_STK_SIZE
//#define  OS_CPU_EXCEPT_STK_SIZE      256u        /* Default exception stack size is 256 OS_STK entries */
//#endif

////OS_CRITICAL_METHOD
//#define OS_CRITICAL_METHOD  3u
//#if OS_CRITICAL_METHOD == 3u
//#define OS_ENTER_CRITICAL() cpu_sr=OS_CPU_SR_Save(cpu_sr)
//#define OS_EXIT_CRITICAL() OS_CPU_SR_Restore(cpu_sr)
//#endif

//OS_CPU_EXT  OS_STK   OS_CPU_ExceptStk[OS_CPU_EXCEPT_STK_SIZE];
//OS_CPU_EXT  OS_STK  *OS_CPU_ExceptStkBase;


////SysTick_Config
//#define  OS_CPU_CM_SYST_CSR         (*((volatile INT32U *)0xE000E010uL)) /* SysTick Ctrl & Status Reg.                  */
//#define  OS_CPU_CM_SYST_RVR         (*((volatile INT32U *)0xE000E014uL)) /* SysTick Reload  Value Reg.                  */
//#define  OS_CPU_CM_SYST_CVR         (*((volatile INT32U *)0xE000E018uL)) /* SysTick Current Value Reg.                  */
//#define  OS_CPU_CM_SYST_CALIB       (*((volatile INT32U *)0xE000E01CuL)) /* SysTick Cal     Value Reg.                  */
//#define  OS_CPU_CM_SCB_SHPRI1       (*((volatile INT32U *)0xE000ED18uL)) /* System Handlers  4 to  7 Prio.              */
//#define  OS_CPU_CM_SCB_SHPRI2       (*((volatile INT32U *)0xE000ED1CuL)) /* System Handlers  8 to 11 Prio.              */
//#define  OS_CPU_CM_SCB_SHPRI3       (*((volatile INT32U *)0xE000ED20uL)) /* System Handlers 12 to 15 Prio.              */


//#define  OS_CPU_CM_SYST_CSR_COUNTFLAG                     0x00010000uL   /* Count flag.                                 */
//#define  OS_CPU_CM_SYST_CSR_CLKSOURCE                     0x00000004uL   /* Clock Source.                               */
//#define  OS_CPU_CM_SYST_CSR_TICKINT                       0x00000002uL   /* Interrupt enable.                           */
//#define  OS_CPU_CM_SYST_CSR_ENABLE                        0x00000001uL   /* Counter mode.                               */


//void OS_CPU_SysTickInit(INT32U counts);

#endif
